# define null 0
#include<iostream>
#include<string.h>
#include<stdlib.h>
#include<stdio.h>
#include<conio.h>

using namespace std;

class masina{
private:
	char *tip,*nume,*dotari,*transmisie,*culoare,*dimensiune;
	int motorizare;
public:
	masina()
	{

		this->tip=new char [10];
		this->nume=new char [15];
		this->dotari=new char[30];
		this->dimensiune=new char[10];
		this->culoare=new char[10];
		this->motorizare=0;
		this->transmisie=new char [10];
	}
	masina(char *t,char*n,char*d,char *d2,char *c,int m,char *t2)
	{
		strcpy(this->tip,t);
		strcpy(this->nume,n);
		strcpy(this->dotari,d);
		strcpy(this->dimensiune,d2);
		strcpy(this->culoare,c);
		this->motorizare=m;
		strcpy(this->transmisie,t2);
	}
	char *gettip()
	{
		return tip;
	}
	char *getnume()
	{
		return nume;
	}
	char *getdotari()
	{
		return dotari;
	}
	char *getdimensiune()
	{
		return dimensiune;
	}
	char *getculoare()
	{
		return culoare;
	}
	int getmotorizare()
	{
		return motorizare;
	}
	char *gettransmisie()
	{
		return transmisie;
	}
	void settip(char *tip2)
	{
		strcpy(tip,tip2);
	}
	void setnume(char *nume2)
	{
		strcpy(nume,nume2);
	}
	void setdotari(char *dotari2)
	{
		strcpy(dotari,dotari2);
	}
	void setdimensiune(char *dimensiuni)
	{
		strcpy(dimensiune,dimensiuni);
	}
	void setculoare(char *culoare2)
	{
		strcpy(culoare,culoare2);
	}
	void setmotorizare(int motor)
	{
		motorizare=motor;
	}
	void settransmisie(char *transmision)
	{
		strcpy(transmisie,transmision);
	}
	void afisaremasina()
	{
		cout<<" Masina "<<nume<<" este de tip "<<tip<<" cu dimensiunea de "<<dimensiune<<". Are urmatoarele dotari "<<dotari<<" culoarea "<<culoare<<" cu o motorizare de "<<motorizare<<" cmc si transmisie "<<transmisie<<endl;
	}

	~masina()
	{
		this->tip=null;
		this->nume=null;
		this->dotari=null;
		this->dimensiune=null;
		this->culoare=null;
		this->motorizare=0;
		this->transmisie=null;
	}
};

class client{
private:
	char *nume_c;
	int varsta,nrmasini;
	masina *masini;
public:
	client()
	{
		this->nume_c=new char[15];
		this->varsta=0;
		masini=new masina[5];
		nrmasini=0;
	}
	client(char *name, int age)
	{
		strcpy(this->nume_c,name);
		this->varsta=age;
	}

	void adauga_client(char *name,int age)
	{
		masina *aux=new masina();
		strcpy(this->nume_c,name);
		varsta=age;
		aux->settip("sedan");
		aux->setnume("peugeot");
		aux->setdotari("standard");
		aux->setdimensiune("1,25 x 4");
		aux->setculoare("neagra");
		aux->settransmisie("automata");
		aux->setmotorizare(1400);
		masini[nrmasini]=*aux;
		nrmasini++;
	}
	
	void adauga_masina(char *name)
	{
		masina *aux=new masina();
		if (strcmp(this->nume_c,name)==0)
		{
			aux->settip(aux->gettip());
		aux->setnume(aux->getnume());
		aux->setdotari(aux->getdotari());
		aux->setdimensiune(aux->getdimensiune());
		aux->setculoare(aux->getculoare());
		aux->settransmisie(aux->gettransmisie());
		aux->setmotorizare(aux->getmotorizare());
		}
		masini[nrmasini]=*aux;
		nrmasini++;
	}

	void sterge_masina(char *name, char *name2)
	{	
		if(strcmp(this->nume_c,name)==0)
		{
			for(int i=0;i<5;i++)
				if(strcmp(masini->getnume(),name2)==0)
					for(int j=i;j<5;j++)
					{
						masini[j]=masini[j+1];
					}
		}
		nrmasini--;
	}

	void afisare_masini()
	{
		cout<<"Clientul "<<this->nume_c<<" cu varsta "<<this->varsta<<" are "<<masini->getnume()<<" "<<masini->gettip()<<" "<<masini->getculoare()<<" "<<masini->getdimensiune()<<" "<<masini->getdotari()<<" "<<masini->getmotorizare()<<" "<<masini->gettransmisie()<<endl;

	}
	~client()
	{
		delete [] masini;
		this->nume_c=null;
		this->varsta=0;
	}
};

void main()
{
	int n,v;
	char nume[10];
	cout<<"Dati nr de clienti ";
	cin>>n;
	client *clienti=new client[n];
	for (int i=0;i<n;i++)
	{
		cout<<"Dati varsta: ";
		cin>>v;
		cout<<endl<<"Dati numele: ";
		cin>>nume;
		clienti[i].adauga_client(nume,v);
	}
	for (int i=0;i<n;i++)
	{
		clienti[i].afisare_masini();
	}
	for (int i=0;i<n;i++)
	{
		clienti[i].sterge_masina("mari","peugeot");
	}

		for (int i=0;i<n;i++)
	{
		clienti[i].afisare_masini();
	}
}

		



	
	


